from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 主动技能(主动技能):

    剑盾加成 = 1.0

    形态 = ["6c", "5c", "4c", "3c"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c":
            self.chain = 6
        if 形态 == "5c":
            self.chain = 5
        if 形态 == "4c":
            self.chain = 4
        if 形态 == "3c":
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率()

    def 等效百分比(self, **argv):
        return super().等效百分比(**argv) * self.剑盾加成


class 技能0(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级精通 = 110
    等级上限 = 200
    关联技能 = ['盾挑']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.倍率 * (0.463 + 0.089 * self.等级), 5)


class 技能1(主动技能):
    名称 = '基本攻击'
    备注 = '一轮'
    所在等级 = 1
    等级上限 = 1
    基础等级 = 1
    MP = [0, 0]
    data0 = [0, 108.75+151.86+174.39]
    hit0 = 1
    CD = 1.0  # 实际无CD
    TP成长 = 0.10
    TP上限 = 5

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能2(主动技能):
    名称 = '盾挑'
    所在等级 = 1
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10
    MP = [0, 0]
    data0 = [int(i) for i in [0, 100, 111, 122, 133, 144, 155, 167, 178, 189, 200, 211, 222, 233, 244, 255, 266, 278, 289, 300, 311, 322, 333, 344, 355, 366, 377, 389, 400, 411, 422, 433, 444,
                              455, 466, 477, 488, 500, 511, 522, 533, 544, 555, 566, 577, 588, 599, 611, 622, 633, 644, 655, 666, 677, 688, 699, 710, 722, 733, 744, 755, 766, 777, 788, 799, 810, 821, 833, 844, 855, 866]]
    hit0 = 1
    CD = 2.0
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能3(主动技能):
    名称 = '强踢'
    所在等级 = 1
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [5, 180]
    data0 = [int(i*1.05*1.07) for i in [0, 943, 1038, 1134, 1230, 1325, 1421, 1517, 1613, 1708, 1805, 1900, 1995, 2092, 2187, 2282, 2379, 2474, 2570, 2666, 2761, 2857, 2953, 3049, 3144, 3239, 3336, 3431, 3527, 3623, 3718, 3814, 3910, 4006,
                                   4101, 4198, 4293, 4388, 4485, 4580, 4675, 4772, 4867, 4963, 5059, 5155, 5250, 5346, 5442, 5537, 5634, 5729, 5824, 5921, 6016, 6112, 6208, 6303, 6399, 6495, 6591, 6686, 6781, 6878, 6973, 7068, 7165, 7260, 7356, 7452, 7548]]
    hit0 = 1
    CD = 5.0
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能4(主动技能):
    名称 = '盾击'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [2, 350]
    data0 = [int(i*1.05*1.07) for i in [0, 404, 445, 486, 527, 568, 609, 651, 692, 732, 773, 814, 856, 897, 938, 979, 1020, 1060, 1103, 1143, 1184, 1225, 1266, 1308, 1349, 1390, 1431, 1471, 1512, 1554, 1595, 1636, 1677, 1718, 1759,
                                   1801, 1842, 1882, 1923, 1964, 2006, 2047, 2088, 2129, 2170, 2211, 2253, 2294, 2334, 2375, 2416, 2458, 2499, 2540, 2581, 2622, 2662, 2705, 2745, 2786, 2827, 2868, 2910, 2951, 2992, 3033, 3073, 3114, 3156, 3197, 3238]]
    hit0 = 1
    CD = 3.0
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能5(主动技能):
    名称 = '致命突刺'
    所在等级 = 10
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [6, 250]
    data0 = [int(i) for i in [0, 202, 228, 254, 278, 302, 329, 353, 378, 401, 427, 452, 475, 501, 526, 552, 575, 601, 625, 651, 675, 699, 725, 750, 775, 800, 824, 848, 872, 898, 923, 949, 973, 997, 1023, 1047, 1072,
                              1097, 1122, 1147, 1171, 1197, 1223, 1247, 1271, 1294, 1320, 1346, 1369, 1394, 1420, 1591, 1618, 1645, 1675, 1701, 1729, 1757, 1784, 1813, 1840, 1868, 1895, 1923, 1952, 1980, 2007, 2035, 2063, 2092, 2118]]
    hit0 = 1
    data1 = [int(i) for i in [0, 254, 286, 317, 347, 378, 410, 441, 471, 502, 534, 564, 595, 625, 658, 690, 718, 752, 782, 814, 842, 873, 906, 937, 968, 999, 1030, 1061, 1092, 1123, 1154, 1186, 1216, 1247, 1278, 1310,
                              1339, 1371, 1404, 1433, 1464, 1494, 1528, 1558, 1587, 1620, 1651, 1682, 1711, 1741, 1775, 1989, 2022, 2057, 2092, 2127, 2161, 2195, 2231, 2267, 2300, 2336, 2370, 2405, 2439, 2475, 2509, 2544, 2581, 2614, 2647]]
    hit1 = 0
    CD = 3.0
    TP成长 = 0.10
    TP上限 = 7
    chain = 6

    形态 = ["6c", "5c", "4c", "3c", "6c蓄", "5c蓄", "4c蓄", "3c蓄"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 6
        if 形态 == "5c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 5
        if 形态 == "4c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 4
        if 形态 == "3c":
            self.hit0 = 1
            self.hit1 = 0
            self.chain = 3
        if 形态 == "6c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 6
        if 形态 == "5c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 5
        if 形态 == "4c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 4
        if 形态 == "3c蓄":
            self.hit0 = 0
            self.hit1 = 1
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率()


class 技能6(主动技能):
    名称 = '愤怒冲撞'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [9, 250]
    data0 = [int(i*1.05*1.056) for i in [0, 3074, 3385, 3698, 4009, 4321, 4634, 4947, 5257, 5569, 5882, 6193, 6506, 6817, 7129, 7441, 7754, 8066, 8377, 8689, 9002, 9313, 9626, 9938, 10251, 10561, 10873, 11186, 11496, 11810, 12121, 12434, 12745, 13058, 13370, 13681,
                                   13993, 14306, 14617, 14930, 15242, 15555, 15865, 16177, 16490, 16800, 17113, 17425, 17738, 18049, 18362, 18674, 18985, 19297, 19610, 19921, 20234, 20545, 20859, 21169, 21481, 21794, 22104, 22417, 22729, 23042, 23353, 23666, 23977, 24289, 24601]]
    hit0 = 1
    CD = 9
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能7(主动技能):
    名称 = '破武之轮'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [9, 250]
    # 挥剑物理攻击力：<data1>%
    data0 = [int(i*1.05*1.07) for i in [0, 508, 607, 675, 741, 808, 867, 939, 1001, 1065, 1131, 1199, 1266, 1325, 1398, 1459, 1526, 1589, 1658, 1725, 1785, 1853, 1918, 1985, 2048, 2116, 2180, 2245, 2310,
                                   2379, 2443, 2509, 2577, 2639, 2703, 2769, 2837, 2903, 2966, 3029, 3097, 3164, 3229, 3298, 3361, 3424, 3487, 3556, 3623, 3688, 3757, 3816, 3883, 3950, 4017, 4080, 4147, 4212, 4278, 4344, 4409]]
    hit0 = 1
    # 剑气物理攻击力：<data2>%
    data1 = [int(i*1.05*1.07) for i in [0, 1016, 1213, 1350, 1480, 1614, 1734, 1878, 2001, 2131, 2261, 2399, 2531, 2651, 2795, 2919, 3051, 3179, 3316, 3449, 3569, 3706, 3836, 3970, 4096, 4233, 4358, 4490,
                                   4618, 4756, 4887, 5017, 5155, 5276, 5407, 5536, 5673, 5804, 5930, 6057, 6193, 6327, 6457, 6594, 6722, 6847, 6974, 7112, 7244, 7374, 7512, 7632, 7764, 7899, 8032, 8159, 8292, 8424, 8555, 8687, 8818]]
    hit1 = 1
    CD = 6
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能8(被动技能):
    名称 = '骑士信念'
    所在等级 = 15
    等级上限 = 20
    基础等级 = 10
    冷却关联技能 = ['所有']
    非冷却关联技能 = ['天马流星落', '暮光之灵黄昏独角兽', '生命之律·神木擎天']

    def CD缩减倍率(self, 武器类型):
        return 0.9

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.10 + 0.02 * self.等级, 5)


class 技能9(主动技能):
    名称 = '守护神鹿'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [9, 250]
    data0 = [int(i*1.05*1.06) for i in [0, 395, 435, 476, 515, 555, 596, 636, 677, 717, 758, 798, 837, 878, 918, 959, 999, 1039, 1080, 1119, 1160, 1200, 1239, 1281, 1320, 1362, 1400, 1440, 1481, 1521, 1562, 1602, 1643, 1683, 1722,
                                   1763, 1803, 1844, 1884, 1924, 1965, 2004, 2045, 2085, 2125, 2166, 2206, 2247, 2287, 2326, 2367, 2407, 2448, 2488, 2529, 2569, 2607, 2650, 2688, 2729, 2769, 2809, 2850, 2889, 2930, 2970, 3010, 3051, 3091, 3132, 3172]]
    hit0 = 6
    CD = 6
    TP成长 = 0.10
    TP上限 = 1
    chain = 6

    def TP加成(self):
        return 1.0

    def 等效百分比(self, **argv):
        char: Character = argv.get('char', {})
        if self.TP等级 > 0:
            self.power0 = 1.15
            self.hit0 = 7
        else:
            self.power0 = 1.0
            self.hit0 = 6
        return super().等效百分比(**argv)


class 技能10(主动技能):
    名称 = '审判之盾'
    备注 = '满'
    所在等级 = 20
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [20, 400]
    # 挥舞物理攻击力：<data0>%
    data0 = [int(i*1.05*1.06) for i in [0, 399, 439, 480, 521, 561, 602, 643, 683, 724, 764, 805, 846, 886, 927, 967, 1008, 1049, 1089, 1130, 1171, 1211, 1252, 1292, 1333, 1374, 1414, 1455, 1495, 1536, 1577, 1617, 1658, 1699, 1739,
                                   1780, 1820, 1861, 1902, 1942, 1983, 2023, 2064, 2105, 2145, 2186, 2227, 2267, 2308, 2348, 2390, 2431, 2471, 2512, 2553, 2593, 2634, 2675, 2715, 2756, 2796, 2837, 2878, 2918, 2959, 2999, 3040, 3081, 3121, 3162, 3203]]
    hit0 = 1
    # 攻击审判状态的敌人时攻击力：<data1>%
    data1 = [int(i*1.05*1.06) for i in [0, 278, 307, 336, 364, 393, 420, 449, 478, 506, 535, 563, 591, 620, 648, 677, 705, 733, 761, 790, 819, 847, 876, 905, 933, 962, 991, 1019, 1045, 1074, 1103, 1131, 1160, 1188, 1217, 1246,
                                   1274, 1303, 1332, 1359, 1386, 1415, 1444, 1472, 1501, 1530, 1558, 1587, 1616, 1644, 1673, 1700, 1729, 1757, 1786, 1815, 1843, 1871, 1899, 1928, 1957, 1985, 2013, 2041, 2070, 2099, 2127, 2156, 2184, 2213, 2242]]
    hit1 = 10
    CD = 7
    TP成长 = 0.10
    TP上限 = 7
    chain = 6

    def TP加成(self):
        return 1.0

    def 等效百分比(self, **argv):
        self.power0 = 1 + self.TP成长 * self.TP等级
        return super().等效百分比(**argv)


class 技能11(主动技能):
    名称 = '破甲冲击'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [25, 480]
    # 冲击波攻击力：<data0>%
    data0 = [int(i*1.051*1.071) for i in [0, 2737, 3015, 3292, 3571, 3848, 4125, 4405, 4682, 4959, 5236, 5515, 5793, 6070, 6349, 6626, 6903, 7183, 7460, 7737, 8014, 8293, 8571, 8848, 9127, 9404, 9681, 9961, 10238, 10515, 10792, 11072, 11349, 11627, 11905, 12182,
                                    12461, 12739, 13016, 13293, 13572, 13850, 14127, 14406, 14683, 14960, 15240, 15517, 15794, 16071, 16350, 16628, 16906, 17184, 17461, 17738, 18018, 18295, 18572, 18850, 19128, 19406, 19684, 19962, 20239, 20516, 20796, 21073, 21351, 21628, 21907]]
    hit0 = 1
    CD = 7
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能12(主动技能):
    名称 = '精灵之跃'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [30, 650]
    # 冲撞物理攻击力：<data0>%
    data0 = [int(i*1.055*1.06) for i in [0, 3785, 4171, 4555, 4939, 5323, 5707, 6092, 6476, 6860, 7244, 7629, 8014, 8398, 8782, 9166, 9549, 9935, 10318, 10702, 11087, 11473, 11856, 12240, 12624, 13008, 13393, 13777, 14161, 14546, 14930, 15315, 15699, 16083, 16467,
                                    16851, 17236, 17620, 18005, 18389, 18772, 19158, 19541, 19925, 20309, 20693, 21078, 21463, 21847, 22231, 22615, 23000, 23384, 23768, 24152, 24537, 24922, 25306, 25690, 26074, 26459, 26843, 27226, 27610, 27994, 28380, 28764, 29148, 29532, 29916, 30301]]
    hit0 = 1
    CD = 7.5
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能13(主动技能):
    名称 = '神木刺击'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [30, 950]
    data0 = [int(i*1.052*1.069) for i in [0, 4247, 4679, 5110, 5542, 5972, 6404, 6835, 7265, 7697, 8127, 8559, 8990, 9421, 9853, 10284, 10716, 11145, 11576, 12008, 12439, 12871, 13302, 13732, 14164, 14594, 15026, 15457, 15887, 16319, 16750, 17182, 17613, 18042, 18474,
                                    18905, 19337, 19768, 20200, 20631, 21061, 21494, 21923, 22355, 22786, 23217, 23649, 24079, 24511, 24942, 25372, 25804, 26234, 26666, 27097, 27528, 27960, 28391, 28823, 29252, 29683, 30115, 30546, 30978, 31409, 31839, 32271, 32701, 33133, 33564, 33994]]
    hit0 = 1
    CD = 10
    TP成长 = 0.10
    TP上限 = 7
    chain = 6


class 技能14(主动技能):
    名称 = '剑盾猛攻'
    所在等级 = 30
    等级上限 = 16
    学习间隔 = 2
    等级精通 = 6
    MP = [2, 75]
    # 挥盾物理攻击力：<data0>%
    data0 = [int(i*1.05*1.07) for i in [0, 1460, 1798, 2138, 2476, 2815, 3154, 3492,
                                   3831, 4170, 4508, 4848, 5187, 5525, 5864, 6202, 6541, 6880, 7218, 7557, 7897]]
    hit0 = 1
    # 推进物理攻击力：<data1>%
    data1 = [int(i*1.05*1.07) for i in [0, 1567, 1931, 2295, 2657, 3021, 3385, 3749,
                                   4112, 4476, 4840, 5204, 5567, 5931, 6295, 6657, 7021, 7385, 7749, 8112, 8476]]
    hit1 = 0
    CD = 0.5

    形态 = ["挥盾", "推进"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "挥盾":
            self.hit0 = 1
            self.hit1 = 0
        if 形态 == "推进":
            self.hit0 = 0
            self.hit1 = 1

    def 剑盾倍率(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(0.120 + 0.005 * self.等级, 5)

    # 仅适用于剑盾强袭
    def 剑盾倍率1(self):
        if self.等级 == 0:
            return 1.0
        else:
            return round(0.120 + 0.05 + 0.005 * self.等级, 5)


class 技能15(主动技能):
    名称 = '铁壁推进'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 攻击力：<data0>%
    data0 = [int(i*1.05*1.073) for i in [0, 467, 516, 563, 610, 658, 705, 753, 800, 849, 896, 943, 991, 1038, 1086, 1134, 1182, 1229, 1276, 1324, 1371, 1419, 1467, 1514, 1562, 1609, 1657, 1704, 1753, 1800, 1847, 1895, 1942, 1990,
                                   2037, 2086, 2133, 2180, 2228, 2275, 2323, 2370, 2417, 2466, 2513, 2561, 2608, 2656, 2703, 2750, 2799, 2846, 2894, 2941, 2989, 3036, 3083, 3132, 3179, 3227, 3274, 3321, 3369, 3416, 3465, 3512, 3560, 3607, 3654, 3702, 3749]]
    hit0 = 1
    CD = 20
    TP成长 = 0.10
    TP上限 = 5
    chain = 6

    MP = [35, 1400]
    无色消耗 = 1

    形态 = ["6c(秒断)", "5c(秒断)", "4c(秒断)", "3c(秒断)",
          "6c(满)", "5c(满)", "4c(满)", "3c(满)"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c(秒断)":
            self.hit0 = 1
            self.chain = 6
        if 形态 == "5c(秒断)":
            self.hit0 = 1
            self.chain = 5
        if 形态 == "4c(秒断)":
            self.hit0 = 1
            self.chain = 4
        if 形态 == "3c(秒断)":
            self.hit0 = 1
            self.chain = 3
        if 形态 == "6c(满)":
            self.hit0 = 18
            self.chain = 6
        if 形态 == "5c(满)":
            self.hit0 = 18
            self.chain = 5
        if 形态 == "4c(满)":
            self.hit0 = 18
            self.chain = 4
        if 形态 == "3c(满)":
            self.hit0 = 18
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率()


class 技能16(主动技能):
    名称 = '自然束缚'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 藤条捆绑的物理攻击力：<data0>%
    data0 = [int(i*1.062*1.057) for i in [0, 5980, 6586, 7196, 7802, 8408, 9014, 9620, 10230, 10836, 11444, 12050, 12660, 13264, 13870, 14478, 15084, 15694, 16300, 16908, 17514, 18118, 18728, 19334, 19942, 20548, 21158, 21764, 22372, 22976, 23582, 24192, 24798, 25406,
                                    26012, 26622, 27226, 27832, 28440, 29046, 29656, 30262, 30868, 31476, 32080, 32690, 33296, 33904, 34510, 35116, 35726, 36332, 36938, 37544, 38154, 38760, 39366, 39974, 40582, 41190, 41794, 42402, 43008, 43614, 44224, 44830, 45438, 46046, 46652, 47258, 47864]]
    hit0 = 1
    CD = 15
    TP成长 = 0.10
    TP上限 = 5
    chain = 6

    MP = [35, 750]
    无色消耗 = 1


class 技能17(主动技能):
    名称 = '一刀两断'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 战意攻击力： <data0>%
    data0 = [int(i*1.051*1.083) for i in [0, 2097, 2312, 2525, 2738, 2951, 3163, 3377, 3589, 3802, 4015, 4228, 4443, 4655, 4868, 5081, 5294, 5506, 5720, 5932, 6147, 6360, 6572, 6786, 6998, 7212, 7424, 7637, 7851, 8063, 8275, 8490, 8703, 8916, 9129, 9341,
                                    9555, 9768, 9980, 10194, 10406, 10621, 10833, 11046, 11260, 11472, 11684, 11898, 12111, 12325, 12538, 12750, 12964, 13177, 13390, 13603, 13815, 14029, 14241, 14454, 14669, 14881, 15095, 15307, 15520, 15733, 15946, 16158, 16373, 16586, 16799]]
    hit0 = 1
    # 敌人断开时伤害：<data1>%
    data1 = [int(i*1.051*1.083) for i in [0, 3573, 3937, 4300, 4662, 5024, 5388, 5750, 6113, 6476, 6838, 7202, 7565, 7926, 8289, 8653, 9015, 9378, 9741, 10104, 10466, 10829, 11191, 11555, 11918, 12280, 12642, 13006, 13368, 13731, 14094, 14457, 14820, 15181, 15544,
                                    15908, 16271, 16633, 16996, 17360, 17721, 18084, 18446, 18809, 19173, 19536, 19898, 20260, 20623, 20986, 21349, 21711, 22075, 22438, 22799, 23162, 23526, 23888, 24251, 24614, 24977, 25339, 25702, 26064, 26428, 26791, 27153, 27515, 27879, 28241, 28604]]
    hit1 = 1
    CD = 15
    TP成长 = 0.10
    TP上限 = 5
    chain = 6
    是否有护石 = 1

    MP = [35, 1350]
    无色消耗 = 1

    def 装备护石(self):
        self.power0 = 3.64
        self.hit1 = 0


class 技能18(主动技能):
    名称 = '飓风旋枪'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 刺击攻击力：<data0>%
    data0 = [int(i*1.051*1.061) for i in [0, 3461, 3812, 4163, 4514, 4865, 5217, 5567, 5919, 6271, 6622, 6973, 7324, 7675, 8026, 8378, 8728, 9081, 9432, 9782, 10134, 10485, 10836, 11187, 11539, 11891, 12241, 12593, 12943, 13295, 13646, 13998, 14348, 14699, 15052,
                                    15402, 15754, 16105, 16456, 16807, 17157, 17510, 17861, 18213, 18563, 18915, 19266, 19616, 19968, 20318, 20671, 21022, 21374, 21724, 22076, 22427, 22777, 23130, 23481, 23833, 24183, 24535, 24885, 25236, 25588, 25940, 26291, 26642, 26994, 27344, 27695]]
    hit0 = 2
    # 旋转攻击力：<data1>%
    data1 = [int(i*1.051*1.061) for i in [0, 371, 409, 446, 485, 522, 560, 598, 636, 673, 712, 749, 787, 826, 863, 901, 938, 977, 1014, 1052, 1089, 1128, 1165, 1203, 1240, 1279, 1317, 1354, 1393, 1430, 1468, 1505, 1544, 1581, 1619,
                                    1656, 1695, 1732, 1770, 1809, 1846, 1885, 1922, 1960, 1997, 2036, 2073, 2111, 2148, 2187, 2225, 2262, 2301, 2338, 2376, 2413, 2452, 2489, 2527, 2565, 2603, 2640, 2679, 2717, 2754, 2793, 2829, 2868, 2905, 2943, 2981]]
    hit1 = 10
    CD = 25
    演出时间 = 2
    TP成长 = 0.10
    TP上限 = 5
    chain = 6
    是否有护石 = 1

    MP = [40, 2800]
    无色消耗 = 1

    def 装备护石(self):
        self.power1 = 1.74
        self.CDR *= 0.90


class 技能19(主动技能):
    名称 = '天陨断空斩'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    # 旋转劈砍物理攻击力：<data0>%
    data0 = [int(i*1.055*1.06) for i in [0, 2073, 2284, 2495, 2706, 2917, 3127, 3337, 3548, 3759, 3968, 4179, 4391, 4602, 4812, 5022, 5233, 5443, 5654, 5866, 6074, 6286, 6497, 6707, 6917, 7128, 7339, 7549, 7761, 7971, 8181, 8392, 8603, 8812, 9023, 9234,
                                    9444, 9656, 9866, 10076, 10287, 10498, 10709, 10918, 11129, 11341, 11551, 11761, 11972, 12182, 12393, 12604, 12813, 13025, 13236, 13447, 13656, 13867, 14078, 14288, 14500, 14710, 14920, 15131, 15342, 15551, 15762, 15973, 16183, 16395, 16605]]
    hit0 = 1
    # 上劈物理攻击力：<data1>%
    data1 = [int(i*1.055*1.06) for i in [0, 1595, 1756, 1919, 2082, 2243, 2404, 2567, 2729, 2891, 3053, 3214, 3377, 3540, 3701, 3862, 4025, 4187, 4349, 4511, 4672, 4835, 4996, 5159, 5320, 5483, 5645, 5807, 5969, 6130, 6293, 6454, 6617, 6778, 6941,
                                    7103, 7264, 7427, 7589, 7751, 7912, 8075, 8236, 8399, 8561, 8722, 8885, 9047, 9209, 9370, 9532, 9695, 9857, 10019, 10180, 10343, 10505, 10667, 10828, 10990, 11153, 11315, 11477, 11638, 11800, 11963, 12125, 12286, 12448, 12611, 12773]]
    hit1 = 1
    # 闪光下劈的物理攻击力：<data2>%
    data2 = [int(i*1.055*1.06) for i in [0, 2394, 2636, 2879, 3123, 3366, 3608, 3852, 4094, 4337, 4581, 4823, 5066, 5310, 5552, 5795, 6039, 6281, 6524, 6768, 7010, 7253, 7497, 7739, 7982, 8226, 8468, 8711, 8955, 9197, 9440, 9684, 9926, 10169, 10412, 10655,
                                    10898, 11142, 11384, 11626, 11870, 12113, 12356, 12600, 12842, 13084, 13328, 13571, 13814, 14058, 14300, 14542, 14786, 15029, 15272, 15516, 15758, 16000, 16244, 16487, 16730, 16974, 17215, 17458, 17702, 17945, 18188, 18432, 18673, 18916, 19160]]
    hit2 = 1
    # 闪光下劈的冲击波物理攻击力：<data3>%
    data3 = [int(i*1.055*1.06) for i in [0, 9897, 10902, 11906, 12910, 13916, 14920, 15924, 16929, 17933, 18937, 19942, 20946, 21950, 22955, 23959, 24963, 25968, 26972, 27977, 28981, 29985, 30990, 31994, 32998, 34004, 35008, 36012, 37017, 38021, 39025, 40030, 41034, 42038,
                                    43043, 44047, 45051, 46056, 47060, 48064, 49069, 50073, 51077, 52083, 53087, 54090, 55096, 56100, 57104, 58108, 59112, 60116, 61121, 62125, 63129, 64134, 65138, 66142, 67147, 68151, 69155, 70160, 71164, 72168, 73173, 74177, 75181, 76186, 77190, 78194, 79200]]
    hit3 = 1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    chain = 6
    是否有护石 = 1

    MP = [80, 3500]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 0
        self.power1 = 2.30
        self.power2 = 1.79
        self.power3 = 1.27


class 技能20(被动技能):
    名称 = '自然恩泽'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40
    关联技能 = ['所有']
    关联技能1 = ['天马流星落', '暮光之灵黄昏独角兽', '生命之律·神木擎天']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00+0.02 * self.等级, 5)

    def 加成倍率1(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.00+0.02 * self.等级, 5)

    def 等级加成(self, x, char: Character = {}):
        if self.等级 != 0:
            if self.等级 + x > self.等级上限:
                self.等级 = self.等级上限
                if self.基础等级 != self.等级上限 and self.关联技能 != ['无']:
                    self.等级溢出 = 1
            else:
                self.等级 += x
                char.所有属性抗性加成(x)


class 技能21(主动技能):
    名称 = '天马流星落'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 一斩物理攻击力：<data0>%
    data0 = [int(i*1.068) for i in [0, 4535, 5586, 6639, 7691, 8744, 9795, 10847, 11898, 12951, 14004, 15056, 16108, 17159, 18212, 19263, 20315, 21368, 22420, 23471, 24524, 25575, 26627, 27681, 28732, 29785, 30836, 31888, 32939, 33992, 35044, 36097, 37148, 38200, 39251,
                              40304, 41358, 42409, 43461, 44512, 45565, 46616, 47668, 48721, 49773, 50824, 51877, 52928, 53980, 55034, 56085, 57138, 58189, 59241, 60292, 61345, 62397, 63450, 64501, 65553, 66605, 67657, 68709, 69762, 70813, 71865, 72918, 73969, 75021, 76074, 77126]]
    hit0 = 1
    # 二斩多段攻击物理攻击力：<data1>%
    data1 = [int(i*1.068) for i in [0, 2674, 3296, 3917, 4536, 5158, 5778, 6400, 7019, 7641, 8261, 8883, 9502, 10124, 10744, 11365, 11985, 12606, 13227, 13848, 14468, 15089, 15710, 16331, 16950, 17572, 18192, 18814, 19433, 20055, 20675, 21297, 21916, 22538, 23158,
                              23779, 24399, 25020, 25641, 26262, 26882, 27503, 28124, 28745, 29365, 29986, 30606, 31228, 31847, 32469, 33089, 33711, 34330, 34952, 35572, 36192, 36813, 37434, 38055, 38675, 39296, 39917, 40538, 41158, 41779, 42400, 43020, 43642, 44261, 44883, 45503]]
    hit1 = 4
    # 天马冲锋物理攻击力：<data2>%
    data2 = [int(i*1.068) for i in [0, 45246, 55738, 66231, 76722, 87215, 97708, 108200, 118692, 129184, 139677, 150170, 160661, 171154, 181646, 192139, 202632, 213123, 223616, 234108, 244601, 255092, 265585, 276077, 286570, 297062, 307554, 318047, 328539, 339031, 349522, 360016, 370509, 380999, 391493,
                              401984, 412478, 422968, 433461, 443954, 454446, 464938, 475430, 485923, 496416, 506908, 517400, 527892, 538385, 548877, 559369, 569862, 580354, 590847, 601338, 611831, 622323, 632816, 643307, 653800, 664293, 674785, 685277, 695769, 706262, 716755, 727246, 737739, 748231, 758724, 769214]]
    hit2 = 1
    CD = 145

    MP = [400, 8400]
    无色消耗 = 5

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能22(主动技能):
    名称 = '生命审判'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 爆炸物理攻击力：<data0>%
    data0 = [int(i*1.069*1.062) for i in [0, 15097, 16630, 18161, 19692, 21224, 22756, 24288, 25819, 27350, 28884, 30416, 31947, 33478, 35010, 36542, 38074, 39605, 41137, 42670, 44202, 45733, 47265, 48797, 50329, 51860, 53391, 54923, 56457, 57988, 59519, 61051, 62583, 64115, 65646,
                                    67177, 68711, 70243, 71774, 73305, 74837, 76369, 77901, 79432, 80964, 82496, 84029, 85560, 87092, 88624, 90156, 91687, 93218, 94751, 96282, 97814, 99346, 100878, 102410, 103942, 105473, 107004, 108537, 110068, 111600, 113131, 114665, 116196, 117728, 119259, 120791]]
    hit0 = 1
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    chain = 6
    是否有护石 = 1

    MP = [450, 1560]
    无色消耗 = 1

    def 装备护石(self):
        self.倍率 *= 1.17


class 技能23(主动技能):
    名称 = '壁垒突袭'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 盾牌击打攻击力：<data0>%
    data0 = [int(i*1.053*1.06) for i in [0, 8929, 9834, 10740, 11646, 12553, 13459, 14365, 15271, 16177, 17082, 17988, 18894, 19800, 20707, 21613, 22519, 23423, 24329, 25235, 26141, 27047, 27953, 28859, 29766, 30671, 31577, 32483, 33389, 34295, 35201, 36107, 37014, 37918,
                                    38825, 39731, 40637, 41543, 42449, 43355, 44261, 45166, 46073, 46979, 47885, 48791, 49697, 50603, 51509, 52414, 53320, 54227, 55133, 56039, 56945, 57851, 58757, 59662, 60568, 61475, 62381, 63287, 64193, 65099, 66004, 66910, 67816, 68722, 69629, 70535, 71441]]
    hit0 = 1
    # 盾牌破碎时攻击力：<data1>%
    data1 = [int(i*1.053*1.06) for i in [0, 16582, 18265, 19947, 21630, 23313, 24995, 26678, 28360, 30043, 31725, 33408, 35091, 36774, 38455, 40138, 41821, 43503, 45186, 46868, 48551, 50233, 51916, 53598, 55281, 56962, 58645, 60327, 62010, 63692, 65375, 67057, 68740, 70424, 72106,
                                    73789, 75471, 77154, 78836, 80519, 82200, 83883, 85565, 87248, 88930, 90613, 92296, 93978, 95661, 97343, 99026, 100707, 102390, 104073, 105756, 107438, 109121, 110804, 112486, 114169, 115851, 117534, 119216, 120899, 122580, 124263, 125945, 127628, 129310, 130993, 132675]]
    hit1 = 1
    CD = 50
    TP成长 = 0.10
    TP上限 = 5
    chain = 6
    是否有护石 = 1

    MP = [935, 2360]
    无色消耗 = 3

    def 装备护石(self):
        self.power1 = 1.47


class 技能24(主动技能):
    名称 = '剑盾强袭'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # [剑盾猛攻]连锁伤害额外增加量：+5%
    data0 = [int(i*1.05*1.079) for i in [0, 37305, 41090, 44873, 48659, 52443, 56227, 60013, 63797, 67582, 71367, 75152, 78936, 82721, 86506, 90290, 94076, 97860, 101645, 105429,
                                   109213, 112998, 116782, 120568, 124352, 128136, 131922, 135706, 139492, 143276, 147061, 150846, 154629, 158414, 162198, 165984, 169768, 173554, 177338, 181122, 184908]]
    hit0 = 1
    CD = 40
    chain = 6
    是否有护石 = 1

    MP = [580, 4500]
    无色消耗 = 3

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "6c":
            self.chain = 6
        if 形态 == "5c":
            self.chain = 5
        if 形态 == "4c":
            self.chain = 4
        if 形态 == "3c":
            self.chain = 3
        self.剑盾加成 = 1 + self.chain * char.get_skill_by_name("剑盾猛攻").剑盾倍率1()

    def 装备护石(self):
        self.倍率 *= 1.35


class 技能25(被动技能):
    名称 = '信仰鼓舞'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能26(主动技能):
    名称 = '自然之怒'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    # 盾牌攻击物理攻击力：<data0>%
    data0 = [int(i*1.052*1.124) for i in [0, 7160, 7886, 8613, 9341, 10067, 10794, 11521, 12247, 12974, 13701, 14427, 15154, 15881, 16607, 17333, 18059, 18786, 19513, 20239, 20966, 21694, 22419, 23147, 23874, 24600, 25327, 26054, 26780, 27506, 28232, 28959, 29686, 30412,
                                    31139, 31866, 32592, 33319, 34047, 34772, 35500, 36227, 36953, 37680, 38404, 39132, 39859, 40585, 41312, 42039, 42765, 43492, 44219, 44945, 45672, 46399, 47125, 47853, 48577, 49304, 50031, 50757, 51485, 52212, 52938, 53665, 54392, 55118, 55845, 56572, 57298]]
    hit0 = 1
    # 藤蔓多段攻击物理攻击力：<data1>%
    data1 = [int(i*1.052*1.124) for i in [0, 2674, 2944, 3216, 3487, 3760, 4031, 4303, 4575, 4845, 5117, 5388, 5660, 5931, 6203, 6473, 6745, 7016, 7288, 7559, 7832, 8103, 8375, 8645, 8917, 9188, 9460, 9732, 10003, 10275, 10545, 10817, 11088, 11361, 11631, 11904,
                                    12173, 12446, 12717, 12989, 13260, 13532, 13802, 14074, 14345, 14617, 14889, 15160, 15433, 15702, 15975, 16246, 16518, 16789, 17061, 17331, 17603, 17874, 18146, 18417, 18689, 18960, 19231, 19502, 19774, 20047, 20318, 20590, 20861, 21132, 21403]]
    hit1 = 6
    # 藤蔓爆炸物理攻击力：<data2>%
    data2 = [int(i*1.052*1.124) for i in [0, 17864, 19676, 21488, 23301, 25113, 26925, 28738, 30550, 32362, 34175, 35987, 37799, 39611, 41424, 43236, 45048, 46861, 48673, 50485, 52297, 54110, 55922, 57737, 59549, 61361, 63174, 64986, 66798, 68611, 70423, 72235, 74047, 75860, 77672, 79484,
                                    81297, 83109, 84921, 86734, 88546, 90358, 92170, 93983, 95795, 97609, 99421, 101233, 103045, 104858, 106670, 108484, 110296, 112108, 113920, 115733, 117545, 119357, 121170, 122982, 124794, 126607, 128419, 130231, 132043, 133856, 135668, 137482, 139294, 141106, 142918]]
    hit2 = 1
    CD = 45
    chain = 6
    是否有护石 = 1

    MP = [800, 6000]
    无色消耗 = 5

    def 装备护石(self):
        self.power0 = 2.98


class 技能27(主动技能):
    名称 = '暮光之灵黄昏独角兽'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    # 突击物理攻击力：<data0>%
    data0 = [int(i*1.06) for i in [0, 8927, 10998, 13069, 15139, 17209, 19280, 21349, 23420, 25491, 27561, 29631, 31702, 33773, 35844, 37915, 39983, 42054, 44125, 46196, 48266, 50337, 52408, 54478, 56548, 58619, 60689, 62760, 64829, 66900, 68971, 71042, 73112, 75183, 77254, 79322,
                              81393, 83464, 85535, 87606, 89676, 91746, 93817, 95888, 97957, 100028, 102098, 104169, 106239, 108310, 110381, 112452, 114523, 116591, 118662, 120733, 122803, 124874, 126945, 129015, 131085, 133156, 135226, 137297, 139366, 141437, 143508, 145579, 147649, 149720, 151791]]
    hit0 = 3
    # 最后一击物理攻击力：<data1>%
    data1 = [int(i*1.06) for i in [0, 107146, 131990, 156837, 181683, 206527, 231374, 256220, 281067, 305911, 330758, 355604, 380448, 405295, 430141, 454986, 479832, 504678, 529524, 554369, 579215, 604061, 628906, 653752, 678598, 703444, 728289, 753135, 777981, 802826, 827672, 852518, 877363, 902209, 927055, 951901, 976746,
                              1001592, 1026438, 1051283, 1076129, 1100975, 1125820, 1150666, 1175512, 1200358, 1225203, 1250049, 1274895, 1299740, 1324586, 1349433, 1374277, 1399124, 1423970, 1448816, 1473661, 1498507, 1523353, 1548198, 1573044, 1597890, 1622735, 1647581, 1672427, 1697273, 1722118, 1746964, 1771810, 1796655, 1821501]]
    hit1 = 1
    # 星光多段攻击物理攻击力：<data2>%
    data2 = [int(i*1.06) for i in [0, 2975, 3665, 4354, 5045, 5735, 6425, 7115, 7806, 8496, 9186, 9876, 10567, 11257, 11947, 12637, 13327, 14017, 14707, 15396, 16086, 16777, 17467, 18157, 18848, 19538, 20228, 20918, 21609, 22299, 22989, 23679, 24370, 25060, 25750,
                              26440, 27131, 27821, 28511, 29202, 29892, 30581, 31271, 31961, 32650, 33341, 34031, 34721, 35412, 36102, 36792, 37482, 38173, 38863, 39553, 40243, 40934, 41623, 42313, 43003, 43694, 44384, 45074, 45764, 46455, 47145, 47835, 48525, 49216, 49906, 50596]]
    hit2 = 5
    CD = 180

    MP = [2500, 5000]
    无色消耗 = 10

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class 技能28(主动技能):
    名称 = '荆棘之城'
    备注 = '6c'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.095) for i in [0, 7292, 8033, 8773, 9512, 10253, 10992, 11732, 12473, 13212, 13952, 14693, 15432, 16172, 16913, 17652, 18392, 19131, 19872, 20612, 21351, 22092, 22832, 23571, 24312, 25052, 25791, 26532, 27272, 28011, 28752, 29491, 30231, 30972, 31711,
                              32451, 33192, 33931, 34671, 35412, 36151, 36891, 37630, 38371, 39111, 39850, 40591, 41331, 42070, 42811, 43551, 44290, 45031, 45771, 46510, 47251, 47990, 48730, 49471, 50210, 50950, 51691, 52430, 53170, 53910, 54650, 55390, 56129, 56870, 57610, 58349]]
    hit0 = 1
    data1 = [int(i*1.095) for i in [0, 65643, 72303, 78963, 85622, 92282, 98942, 105602, 112260, 118920, 125580, 132240, 138900, 145558, 152218, 158878, 165538, 172197, 178857, 185517, 192176, 198835, 205495, 212155, 218815, 225474, 232133, 238793, 245453, 252112, 258772, 265432, 272092, 278751, 285410,
                              292070, 298730, 305390, 312048, 318708, 325368, 332028, 338687, 345347, 352007, 358667, 365325, 371985, 378645, 385305, 391964, 398623, 405283, 411943, 418603, 425262, 431922, 438582, 445242, 451900, 458560, 465220, 471880, 478539, 485198, 491858, 498518, 505177, 511837, 518497, 525157]]
    hit1 = 1
    CD = 60.0
    chain = 6

    MP = [800, 6667]
    无色消耗 = 7


class 技能29(被动技能):
    名称 = '生命的恩宠'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能30(主动技能):
    名称 = '生命之律·神木擎天'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.079) for i in [0, 39231, 48328, 57426, 66522, 75620, 84717, 93815, 102912, 112008, 121106, 130204, 139302, 148398, 157496, 166593, 175691, 184788, 193884, 202982, 212079, 221177, 230274, 239371, 248468, 257566, 266663, 275761, 284858, 293956, 303053, 312151, 321247, 330344, 339442,
                              348539, 357637, 366733, 375831, 384928, 394026, 403123, 412221, 421318, 430416, 439513, 448609, 457707, 466804, 475902, 484999, 494097, 503193, 512291, 521388, 530485, 539583, 548679, 557777, 566875, 575973, 585069, 594167, 603264, 612362, 621459, 630555, 639653, 648750, 657848, 666945]]
    hit0 = 1
    data1 = [int(i*1.079) for i in [0, 313856, 386634, 459414, 532191, 604970, 677748, 750527, 823305, 896085, 968862, 1041641, 1114419, 1187198, 1259976, 1332756, 1405533, 1478312, 1551090, 1623869, 1696647, 1769427, 1842204, 1914983, 1987761, 2060540, 2133318, 2206097, 2278875, 2351654, 2424432, 2497211, 2569989, 2642767, 2715546,
                              2788325, 2861103, 2933882, 3006659, 3079438, 3152217, 3224996, 3297774, 3370553, 3443330, 3516109, 3588888, 3661667, 3734445, 3807224, 3880001, 3952780, 4025559, 4098338, 4171116, 4243895, 4316672, 4389451, 4462230, 4535009, 4607787, 4680566, 4753343, 4826122, 4898901, 4971679, 5044458, 5117237, 5190014, 5262793, 5335572]]
    hit1 = 1
    data2 = [int(i*1.079) for i in [0, 6537, 8053, 9569, 11086, 12602, 14118, 15634, 17150, 18666, 20184, 21700, 23216, 24732, 26248, 27764, 29280, 30797, 32313, 33829, 35345, 36861, 38377, 39895, 41409, 42927, 44443, 45959, 47475, 48991, 50507, 52024, 53540, 55056, 56572,
                              58088, 59604, 61121, 62638, 64153, 65670, 67186, 68702, 70218, 71734, 73251, 74767, 76283, 77799, 79316, 80832, 82349, 83864, 85381, 86897, 88413, 89929, 91445, 92961, 94478, 95994, 97510, 99027, 100543, 102059, 103575, 105092, 106607, 108124, 109640, 111156]]
    hit2 = 6
    CD = 290.0

    MP = [4028, 8056]
    无色消耗 = 15

    形态 = []

    def 形态变更(self, 形态, char: Character):
        pass


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'elven_knight'
        self.名称 = '皓曦·精灵骑士'
        self.角色 = '守护者'
        self.角色类型 = '输出'
        self.职业 = '精灵骑士'

        self.武器选项 = ['太刀', '钝器', '巨剑', '短剑']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '巨剑'
        self.防具类型 = '板甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.03

        super().__init__()

    # 抗性有成长的较为特殊 需要按照以下进行添加
    def 职业特殊设置(self):
        自然恩泽 = self.get_skill_by_name("自然恩泽")
        self.所有属性抗性加成(自然恩泽.等级+9)
